// 数组泛型
// 泛型（Generics）是指在定义函数、接口或类的时候，不预先指定具体的类型，而在使用的时候再指定类型的一种特性。

function getArr<T>(a: T, b: number): T[] {
    const arr: Array<T> = [];
    for (let o = 0; o < b; o++) {
        arr.push(a);
    }
    return arr;
}

console.log(getArr<string>("123", 3));

console.log(getArr("123", 3));
console.log(getArr({name: "zks"}, 3));

function test<T>(arr: T[], index: number): number {
    let sum: number = 0;
    for (let i: number = 0; i < arr.length; i++) {
        sum += (arr[i] as any) * index;
    }
    return sum;
}

// const sss = test;
// console.log(test([1, 2, 3], 2), 'test');

const zzks = <T>(value: T, length: number): T[] => {
    const arr: Array<T> = [];
    for (let o = 0; o < length; o++) {

    }
    return arr;
};

console.log(zzks(253, 3));

function identity<Type>(arg: Type): Type {
    return arg;
}

// w完整写法
let myIdentity: <Type>(arg: Type) => Type = identity;
myIdentity("123")





